[Alteryx][小ネタ]好きなレイヤでマップ入力!マップ入力ツールのレイヤを変えてみた
はじめに
こんにちは。DI部の大高です。
先日「閲覧ツール」のマップレイヤーを変更できる方法を試してみたのですが、その際に「マップ入力ツール」でもレイヤーを変更できることに気が付いたので併せてご紹介します。なお、こちらも非公式な方法になりますので、試される場合にはご注意ください。
なお「閲覧ツール」のマップレイヤー変更についてはこちらです。
前提条件
Alteryx Designerは「Alteryx 非管理者 Designer / Version 2019.1.6.58192」で検証しています。
マップ入力ツールについて
マップ入力ツールは下絵として地図レイヤーを表示しながら、空間オブジェクトである「ポイント」、「ライン」、「ポリゴン」を作成できる便利なツールです。標準ではこちらに表示される地図レイヤーは「Carto」というベースマップとなっていますが、今回はこのレイヤを変更してみます。
やってみた
まず初めに、こちらは非公式な方法なので、試す場合にはファイルのバックアップ作成などは入念に行ってください。
変更対象のファイル
たまたま発見したのですが、「マップ入力ツール」は下記のフォルダ内のJavaScriptで制御されているようです。この中の「loader.js」ファイルにレイヤの指定があるので、バックアップとして元ファイルをコピーしてファイル名を「loader.js.bak」としてバックアップを作成してから「loader.js」ファイルを編集していきます。
なお、対象フォルダは管理者インストールか、非管理者インストールで以下の通り場所が異なります。
C:\Program Files\Alteryx\bin\RuntimeData\JSMap
C:\Users\[ユーザー名]\AppData\Local\Alteryx\bin\RuntimeData\JSMap
loader.jsファイルを書き換える
「loader.js」ファイルを開くと、このJavaScriptファイルで地図設定を行っていることが見て取れます。
レイヤの定義は51行目ぐらいから以下のように記載されているのですが、実は標準のレイヤURLテンプレートが取得できなかった場合にはOpenStreetMapのレイヤを利用するようになっていることが分かります。
if (typeof _data.m_strLayerUrlTemplate != "undefined") _options["layerUrlTemplate"] = _data.m_strLayerUrlTemplate || "http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";
この記載から、パラメータとしてそれぞれ{z}
にズームレベル、{x}
と{y}
は、そのままxとyが与えられることが分かるので書き換えていきます。
OpenStreetMap(Japan)のタイルサービスのアドレスに書き換えてみましょう。
if (typeof _data.m_strLayerUrlTemplate != "undefined") _options["layerUrlTemplate"] = "https://tile.openstreetmap.jp/{z}/{x}/{y}.png";
いざ表示!
出ました!
(c) OpenStreetMap contributors
よい感じに表示されています。なお、「閲覧ツール」で試した際にはズームを引きすぎるとエラーが発生しましたが、こちらではエラーも起きませんでした。
同様にしてMapboxを利用して色々なスタイルを試してみます。
こちらも良い感じに表示されましたね!
まとめ
以上、「マップ入力ツール」のレイヤー変更でした。
実際に利用する際には、対象の地図タイル提供サーバの利用規約に従う必要がありますので、規約に十分注意してご利用ください。それでは!
Alteryxの導入なら、クラスメソッドにおまかせください
日本初のAlteryxビジネスパートナーであるクラスメソッドが、Alteryxの導入から活用方法までサポートします。14日間の無料トライアルも実施中ですので、お気軽にご相談ください。